﻿Imports System.Windows.Forms

Public Interface I_IntegerExchange
    Event IntegerRx1(ByVal IntA As Integer)
    Event IntegerRx2(ByVal IntA As Integer, ByVal IntB As Integer)
    Event IntegerRx3(ByVal IntA As Integer, ByVal IntB As Integer, ByVal IntC As Integer)
    Event IntegerRx4(ByVal IntA As Integer, ByVal IntB As Integer, ByVal IntC As Integer, ByVal IntD As Integer)
End Interface
Public Interface I_ImageExchange
    Event ImageOut1(ByVal Image As System.Drawing.Bitmap)
End Interface
Public Interface I_ImageExchangeExtended
    Event ImageOut1(ByVal Image As System.Drawing.Bitmap)
    Event ImageOut2(ByVal Image As System.Drawing.Bitmap)
    Event ImageOut3(ByVal Image As System.Drawing.Bitmap)
    Event ImageOut4(ByVal Image As System.Drawing.Bitmap)
    Event ImageOut5(ByVal Image As System.Drawing.Bitmap)
End Interface

Public Interface I_Trigger
    Event Triggered()
End Interface
Public Interface I_Control
    Event NewValue(ByVal Value As Object)
End Interface
Public Interface I_LoadSave
    Function GetSettings() As String
    Sub SetSettings(ByVal Settings As String)
End Interface
Public Interface I_Plugin
    Function GetDevice(ByVal Name As String) As Control
    ReadOnly Property Devices() As List(Of UCBase.UCSDevice)
    WriteOnly Property Resources() As ResourceManager
    Sub Unload()
End Interface
Public Interface I_EditMode
    Sub SetEditMode(ByVal Mode As Diagram.EditMode)
End Interface
Public Interface I_PortDataExchange ' Do not use!
    Event DataReady(ByVal Data As Byte())
End Interface
Public Interface I_BinaryDataExchange
    Sub Write(ByVal data As Byte())
    Function Read() As Byte()
    Function Read(ByVal Count As Integer) As Byte()
    Sub ClearBuffers()
    ReadOnly Property BytesToRead() As Integer
    ReadOnly Property BytesToWrite() As Integer
End Interface
Public Interface I_UCNet
    Sub Write(ByVal AddrA As Integer, ByVal AddrB As Integer, ByVal Command As Integer, ByVal Value As Integer)
    Function Read(ByVal AddrA As Integer, ByVal AddrB As Integer, ByVal Command As Integer, ByVal Value As Integer, Optional ByVal ByteCountToRead As Integer = 2) As Byte()
End Interface
Public Interface I_CloseNotify
    Sub ShutDown()
End Interface

